package recursion;
import java.io.File;
import java.io.IOException;

/**
 * 文件搜索的实现
 */
public class Recursion1 {
    public static void main(String[] args) throws IOException {
        searchFile(new File("D:/"),"QQ");
    }

    /**
     * 去目录下搜索某个文件
     * @param dir 目录
     * @param fileName 要搜索的文件名称
     */
    public static void searchFile(File dir,String fileName) throws IOException {
        //1.把非法的情况拦截住
        /**
         * 没有该目录  该dir路径不存在  该目录是文件
         */
        if (dir==null||!dir.exists()||dir.isFile()){
            return;//代表无法搜索
        }
        //2.dir不是null，存在，一定是目录对象
        //获取当前目录下的全部一级文件对象
        File[] files = dir.listFiles();
        //3判断当前目录下是否存在一级文件对象，以及是否可以拿到一级文件对象
        if (files != null){
            //4.遍历全部一级文件对象
            for (File f : files) {
                //5.判断文件是文件还是文件夹
                if (f.isFile()){
                    //当前遍历到的是文件
                    if (f.getName().contains(fileName)){
                        System.out.println("找到了"+f.getAbsolutePath());
//                        Runtime runtime = Runtime.getRuntime();
//                        runtime.exec(f.getAbsolutePath());
                    }
                }else {
                    //找到的是文件夹，继续重复这个过程，递归
                    searchFile(f,fileName);
                }
            }
        }

    }
}
